package com.ruoyi.server.api.subscribe.mapper;

import java.util.List;

import com.ruoyi.server.api.coach.domain.CoachManagement;
import com.ruoyi.server.api.subscribe.domain.CourseSubscribe;
import org.apache.ibatis.annotations.Param;

/**
 * 团课信息Mapper接口
 *
 * @author hjh
 * @date 2024-06-10
 */
public interface CourseSubscribeMapper {
    /**
     * 查询团课信息
     *
     * @param id 团课信息主键
     * @return 团课信息
     */
    public CourseSubscribe selectCourseSubscribeById(Long id);

    /**
     * 查询团课信息列表（状态为未发布）
     *
     * @param courseSubscribe 团课信息
     * @return 团课信息集合
     */
    public List<CourseSubscribe> selectCourseSubscribeList(CourseSubscribe courseSubscribe);

    /**
     * 新增团课信息
     *
     * @param courseSubscribe 团课信息
     * @return 结果
     */
    public int insertCourseSubscribe(CourseSubscribe courseSubscribe);

    /**
     * 修改团课信息
     *
     * @param courseSubscribe 团课信息
     * @return 结果
     */
    public int updateCourseSubscribe(CourseSubscribe courseSubscribe);

    /**
     * 删除团课信息
     *
     * @param id 团课信息主键
     * @return 结果
     */
    public int deleteCourseSubscribeById(Long id);

    /**
     * 批量删除团课信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseSubscribeByIds(Long[] ids);

    /**
     * @param id
     * @Author hjh
     * @Description 更改团课状态
     * @Date 2024/6/11 14:05
     * @Return int
     */
    public int updateCourseState(Integer id);

    /**
     * 查询团课信息列表（状态为已发布）
     *
     * @param courseSubscribe 团课信息
     * @return 团课信息集合
     */
    public List<CourseSubscribe> getReleaseCourse(CourseSubscribe courseSubscribe);

    /**
     * @param courseSubscribe
     * @Author hjh
     * @Description 查询团课信息 （过往团课）
     * @Date 2024/6/12 8:51
     * @Return java.util.List<com.ruoyi.server.api.subscribe.domain.CourseSubscribe>
     */
    public List<CourseSubscribe> getAbnormalCourse(CourseSubscribe courseSubscribe);

    /**
     * @param id
     * @Author hjh
     * @Description 修改课程状态(撤销发布)
     * @Date 2024/6/12 14:30
     * @Return int
     */
    public int updateCancelRelease(@Param("id") Integer id, @Param("cancelCause") String cancelCause);

    /**
    * @Author hjh
    * @Description 获取教练信息
    * @Date 2024/6/14 10:26
    * @Return java.util.List<com.ruoyi.server.api.couch.domin.CoachManagement>

    */
    public List<CoachManagement> getCouchInfo (String venueUniqueIdentifier);
}
